package com.yytek.nmp.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yytek.common.core.annotation.Excel;
import com.yytek.common.core.web.domain.BaseEntity;

import javax.validation.constraints.NotBlank;

/**
 * 物模型定义对象 iot_model_define
 * 
 * @author yytek-iot
 * @date 2022-07-05
 */
@ApiModel("物模型定义对象")
public class IotModelDefine extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @ApiModelProperty("id")
    private Long id;

    /** 物模型名称(总体唯一) */
    @Excel(name = "物模型名称(总体唯一)")
    @ApiModelProperty("物模型名称(总体唯一)")
    private String modelName;

    /** 产品标识 */
    @Excel(name = "产品标识")
    @ApiModelProperty("产品标识")
    private String productType;

    /** 功能类型(u-用户自定义 s-标准功能点) */
    @Excel(name = "功能类型(u-用户自定义 s-标准功能点)")
    @ApiModelProperty("功能类型(u-用户自定义 s-标准功能点)")
    private String functionType;

    /** 行业类型 */
    @Excel(name = "行业类型")
    @ApiModelProperty("行业类型")
    private String industryType;

    /** 应用场景 */
    @Excel(name = "应用场景")
    @ApiModelProperty("应用场景")
    private String appScene;

    /** 模型属性 */
    @Excel(name = "模型属性")
    @ApiModelProperty("模型属性")
    private String properties;

    /** 模型事件 */
    @Excel(name = "模型事件")
    @ApiModelProperty("模型事件")
    private String events;

    /** 模型服务 */
    @Excel(name = "模型服务")
    @ApiModelProperty("模型服务")
    private String services;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setModelName(String modelName) 
    {
        this.modelName = modelName;
    }
    @NotBlank(message = "模型名称不能为空")
    public String getModelName() 
    {
        return modelName;
    }
    public void setProductType(String productType) 
    {
        this.productType = productType;
    }

    public String getProductType() 
    {
        return productType;
    }
    public void setFunctionType(String functionType) 
    {
        this.functionType = functionType;
    }
    @NotBlank(message = "功能类型不能为空")
    public String getFunctionType() 
    {
        return functionType;
    }
    public void setIndustryType(String industryType) 
    {
        this.industryType = industryType;
    }

    public String getIndustryType() 
    {
        return industryType;
    }
    public void setAppScene(String appScene) 
    {
        this.appScene = appScene;
    }

    public String getAppScene() 
    {
        return appScene;
    }
    public void setProperties(String properties) 
    {
        this.properties = properties;
    }

    public String getProperties() 
    {
        return properties;
    }
    public void setEvents(String events) 
    {
        this.events = events;
    }

    public String getEvents() 
    {
        return events;
    }
    public void setServices(String services) 
    {
        this.services = services;
    }

    public String getServices() 
    {
        return services;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("modelName", getModelName())
            .append("productType", getProductType())
            .append("functionType", getFunctionType())
            .append("industryType", getIndustryType())
            .append("appScene", getAppScene())
            .append("properties", getProperties())
            .append("events", getEvents())
            .append("services", getServices())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
